package com.zgis.module.bas.util;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 修改记录:
 * 24-09-29     zhengchaojun             首次创建
 */

/**
 * 类描述：值校验工具类
 */
public class CxValueUtil
{
    /**
     * 判断一个对象是否为空（能够校验：字符串，list，Collection，Map，Object[]）
     *
     * @param obj 要检验的对象
     * @return true 为空
     */
    public static boolean isEmpty(Object obj)
    {
        if (obj == null)
        {
            return true;
        }

        if ((obj instanceof String))
        {
            return ((String) obj).trim().equals("");
        }

        if ((obj instanceof List))
        {
            return ((List) obj).size() == 0;
        }

        if (obj instanceof Map)
        {
            return ((Map) obj).isEmpty();
        }

        if (obj instanceof Object[])
        {
            Object[] object = (Object[]) obj;
            if (object.length == 0)
            {
                return true;
            }
            boolean empty = true;
            for (int i = 0; i < object.length; i++)
            {
                if (!isEmpty(object[i]))
                {
                    empty = false;
                    break;
                }
            }
            return empty;
        }

        if (obj instanceof Collection)
        {
            return ((Collection) obj).isEmpty();
        }

        if (obj instanceof CharSequence)
        {
            return ((CharSequence) obj).length() == 0;
        }

        return false;
    }
}
